/**
 * 
 */
package pl.com.like.sequoia.biojava.util;

import java.io.File;
import java.io.InputStream;
import java.net.URL;

import pl.com.like.sequoia.exceptions.LogicalException;
import pl.com.like.sequoia.exceptions.TechnicalException;

/**
 * @author Pawel Wolanski
 * 
 */
public interface IFileHelper {

	/**
	 * open {@link File} and check input stream. Returns correct one for operations in application.
	 * 
	 * @param url
	 * @return
	 * @throws TechnicalException
	 * @throws LogicalException if could not read from input stream
	 */
	public InputStream getInputStream(File inputFile) throws LogicalException;

	/**
	 * open url and check input stream. returns correct for operations in application.
	 * 
	 * @param url
	 * @return
	 * @throws TechnicalException
	 * @throws LogicalException if could not read from input stream
	 */
	public abstract InputStream getInputStream(URL url) throws LogicalException;

}